package com.kj.tms.pri.system.basicinfo.service;


import com.kj.tms.common.bean.dto.Pager;
import com.kj.tms.common.bean.dto.ReturnData;
import com.kj.tms.pri.system.basicinfo.dto.ShareholderDto;
import com.kj.tms.pri.system.basicinfo.dto.TaxIdentifyDto;
import com.kj.tms.pri.system.basicinfo.dto.TaxPayersInfoDto;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @author dongshidong
 * @ProjectName: tms
 * @Package: com.hongtu.tms.basicinfo.service
 * @ClassName: TaxPayersInfoService
 * @Description: 纳税主体TaxPayersInfoService
 * @CreateDate: 2017/11/08 9:38
 * @UpdateUser:
 * @UpdateDate:
 * @UpdateRemark:
 * @Version: 1.0
 * Copyright: 北京宏图天安 Copyright (c) 2017
 */
public interface TaxPayersInfoService {
    static final  String BASE_URL = "/api/system/taxpayer";
    /**
    * @method      [queryListByOrgCode]
    * @description [通过当前机构查询纳税主体]
    * @author      王国庆
    * @version     1.0
    * @param       curOrgCode 当前登录机构
    * @return
    * @exception
    * @date        2017年11月08日 19:25
    */
    List<TaxPayersInfoDto> queryListByOrgCode(@RequestParam("curOrgCode") String curOrgCode);

    /**
     * @param model sd
     * @return Pager
     * @throws
     * @method queryByPage
     * @description 添加数据
     * @author 董世栋
     * @version 1.0
     * @date
     */
    Pager queryByPage(@RequestBody(required = false) TaxPayersInfoDto model);

    /**
     * @param model model
     * @return TaxPayersInfoDto
     * @throws
     * @method insertDto
     * @description 添加数据
     * @author 董世栋
     * @version 1.0
     * @date
     */
    ReturnData insertDto(@RequestBody(required = false) TaxIdentifyDto model);

    /**
     * @param dto sd
     * @return int
     * @throws
     * @method updateByPrimary
     * @description   sd
     * @author 董世栋
     * @version 1.0
     * @date
     */
    ReturnData updateByPrimary(@RequestBody(required = false) TaxIdentifyDto dto);

    /**
     * @param dto
     * @return int
     * @throws
     * @method deleteTaxPayersInfo
     * @description   删除纳税主体信息及税种鉴定信息
     * @author 董世栋
     * @version 1.0
     * @date
     */
    ReturnData deleteTaxPayersInfo(@RequestBody(required = false) TaxPayersInfoDto dto);


    /**
     * @param
     * @return
     * @throws
     * @method getByPrimaryKey
     * @description sd
     * @author 董世栋
     * @version 1.0
     * @date
     */
    TaxIdentifyDto getByPrimaryKey(@RequestParam("id") String id);

    /**
     * @param orgCode
     * @return ReturnData
     * @throws
     * @method updateToDelOrgRelease
     * @description   sd
     * @author 董世栋
     * @version 1.0
     * @date
     */
    ReturnData updateToDelOrgRelease(@RequestParam("orgCode") String orgCode);

    /**
    * @Method      batchInsertShareholder
    * @Param
    * @Return
    * @Exception
    * @Description [批量更新股东信息]
    * @Author      yangruidong
    * @Version     1.0
    * @Date        2018/5/24 17:11
    */
    void batchInsertShareholder(@RequestBody List<ShareholderDto> list);

    TaxIdentifyDto judgeIsParent(@RequestParam("orgCode") String orgCode, @RequestParam("taxCode") String taxCode);
}
